Configuration - Boost
Powerful convention based finder, loader, and manager of both configuration and ignore files.
import { Blueprint, Schemas } from '@boost/common';
import { Configuration } from '@boost/config';
interface ConfigFile {
debug: boolean;
sourceMaps: boolean;
}
class ConfigManager extends Configuration<ConfigFile> {
blueprint({ bool }: Schemas): Blueprint<ConfigFile> {
return {
debug: bool(),
sourceMaps: bool(),
};
}
}
const configManager = new ConfigManager('boost');
const { config } = await configManager.loadConfigFromRoot('.');
const ignore = await configManager.loadIgnoreFromBranchToRoot('./some/deep/path');
Features
- Loads root configs (
.config/<name>.js
) and branch configs (.<name>.js
). - Loads ignore files (
.<name>ignore
). - Supports multiple config types:
js
, cjs
, mjs
, json
, yaml
- Supports environment and root-level based overrides.
- Supports extending from other config files.
- Finds files within each branch folder while traversing up the tree.
- Caches finder results for increased efficiency.
- Custom key-value setting processors.
Installation
yarn add @boost/config
Documentation